\subsection{Why VPython?} \label{why-vpython}

The \verb!visual! module provides Python with a simple way to make
3D graphics. I chose originally to use it for the visualisations
used to help me imagine the rules of \TC, and decided that it would
be well suited to the task of making a full 3D \TC GUI. I feel that
it is well suited to the task for the following reasons:

\paragraph{Simplicity} is one of the module's main selling points.
Its tag-line is ``\emph{3D programming for ordinary mortals}'', and
it was designed to allow students of physics with no prior
knowledge of programming to write 3D physics simulation and
demonstration programs \cite{scherer2000vpython}. I am simply
attempting to represent the game state in a clear way, and to allow
a user to interact with it, so this simplicity helps to avoid
unnecessary complications.

\paragraph{Features} like variable opacity, complex lighting, pixel
shader enhanced material effects etc. are available if required,
but set to sensible defaults to allow them to be ignored.

\paragraph{Cross-platform support} is an important feature. It
doesn't make sense to lose the benefits of using a cross-platform
language by binding to a single platform 3D library.

